package com.nbsaas.boot.queue.storage;

import com.nbsaas.boot.queue.task.Task;

import java.util.List;

public interface TaskStorage {
    /**
     * 保存任务
     */
    void saveTask(Task task);

    /**
     * 更新任务
     */
    void updateTask(Task task);

    /**
     * 获取任务
     */
    Task getTask(String taskId);

    /**
     * 获取所有任务
     */
    List<Task> getAllTasks();

    /**
     * 获取待执行的任务
     */
    List<Task> getPendingTasks();

    /**
     * 获取执行中的任务
     */
    List<Task> getRunningTasks();

    /**
     * 获取已完成的任务
     */
    List<Task> getCompletedTasks();

    /**
     * 获取失败的任务
     */
    List<Task> getFailedTasks();

    /**
     * 删除任务
     */
    void deleteTask(String taskId);
} 